#ifndef SERIALPORTCORE_H
#define SERIALPORTCORE_H

#include <QObject>
#include <QSerialPort>
#include <QByteArray>

class SerialPortCore :public QObject
{
    Q_OBJECT
public:
    explicit SerialPortCore(QObject *parent = nullptr);
    ~SerialPortCore();

    //可用串口
    QStringList getAvailablePorts() const;

    //打开/关闭串口
    bool open(const QString &portName,qint32 baudRate = QSerialPort::Baud9600);
    void close();

    //发送数据
    qint64 sendData(const QByteArray &data);

    //检查串口状态
    bool isOpen() const;


  signals:

    //接收到数据时触发
    void dataReceived(const QByteArray &data);

    // 错误信息
       void errorOccurred(const QString &errorString);

       // 状态变化（打开/关闭）
       void stateChanged(bool isOpen);

private:
    QSerialPort *m_serial;//指向 QSerialPort 类对象的指针
};

#endif // SERIALPORTCORE_H
